package me.ingxin.android.keyboard.view

import android.graphics.drawable.Drawable
import me.ingxin.android.keyboard.entry.Key

/**
 * Created by ingxin on 2023/2/6
 */
interface IKeyboard {

    /**
     * 按键被点击监听事件
     */
    fun setOnKeyListener(listener: OnKeyListener)

    /**
     * 设置按键图标
     * @param keyCode 按键对应的code
     * @param drawable 按键图标
     */
    fun setKeyIcon(keyCode: Int, drawable: Drawable?)

    /**
     * 设置主题色，该颜色会在图标颜色以及一些关键字上生效
     */
    fun setThemeColor(color: Int)

    /**
     * 设置按键背景
     */
    fun setKeyBackground(drawable: Drawable?)

    /**
     * 设置按键水平方向间距
     */
    fun setHorizontalGap(gap: Float)

    /**
     * 设置按键竖直方向间距
     */
    fun setVerticalGap(gap: Float)

    /**
     * 设置按键字体大小
     */
    fun setKeyTextSize(size: Float)

    /**
     * 设置按键字体颜色
     */
    fun setKeyTextColor(color: Int)

    /**
     * 复位UI状态
     */
    fun resetUI()

    /**
     * 按键被触发是回调
     */
    fun interface OnKeyListener {

        /**
         * 按键被触发
         */
        fun onKey(key: Key)

    }

}